package com.jh.paymentchannel.business;

import java.util.List;

import com.jh.paymentchannel.pojo.*;
import com.jh.paymentchannel.repository.MiLianQuickRegisterRepository;

public interface TopupPayChannelBusiness {

	TopupPayChannelRoute getTopupChannelByBrandcode(String brandcode, String channelType, String channelTag);

	TopupPayChannelRoute saveTopupPayChannelRoute(TopupPayChannelRoute topupPayChannelRoute);

	List<TopupPayChannelRoute> getTopupChannelByBrandId(String brandcode, String channelType, String channelTag);

	List<TopupPayChannelRoute> getPayChannelByBrandcode(String brandcode);

	ChannelDetail getChannelDetailByTag(String channelTag);

	List<ChannelDetail> getChannelDetail();

	MiMaiRegister createMiMaiRegister(MiMaiRegister mimaiRegister);

	MiMaiRegister getMiMaiRegister(long userid);

	MiMaiRegister getMiMaiRegister(long userid, String bankcard);

	TopupPayChannelRoute configTopupPayChannelRoute(TopupPayChannelRoute topupPayChannelRoute);

	// 盛迪嘉通道保存商户进件数据
	SDJRegister createSDJRegister(SDJRegister sdjRegister);

	// 根据userid查询数据
	SDJRegister getSDJRegister(long userid);

	// 根据userid和银行卡号查询数据
	SDJRegister getSDJRegister(long userid, String bankcard);

	String getSDJAreaByName(String name);

	// 根据userid和卡号获取该用户的绑卡信息
	SDJBindCard getBankCard(String userid, String bankCard);

	SDJBindCard createSDJBindCard(SDJBindCard sdjBindCard);

	// 即富(无积分)通道保存商户进件数据
	JFRegister createJFRegister(JFRegister jfRegister);

	JFRegister getJFRegister(long userId);

	JFRegister getJFRegister(long userId, String bankCard);

	// 即富(有积分)通道保存商户进件数据
	JFCoinRegister createJFCoinRegister(JFCoinRegister jfCoinRegister);

	JFCoinRegister getJFCoinRegister(long userId);

	JFCoinRegister getJFCoinRegister(long userId, String bankCard);

	// 即富(api)通道保存商户前端开通数据
	JFApiRegister createJFApiRegister(JFApiRegister jfApiRegister);

	JFApiRegister getJFApiRegister(String bankCard);

	String getBankCodeByBankName(String bankName);

	// 畅捷通道保存商户进件数据
	CJRegister createCJRegister(CJRegister cjRegister);

	CJRegister getCJRegister(long userId);

	CJRegister getCJRegister(long userId, String bankCard);

	CJRegister getCJRegisterByRateCode1(long userId, String rateCode1);
	
	CJRegister getCJRegisterByRateCode2(long userId, String rateCode2);

	CJBindCard getCJBankCard(String userid, String bankCard);

	CJBindCard createCJBindCard(CJBindCard cjBindCard);

	CJQuickBindCard getCJQuickBindCard(String userid, String bankCard);

	CJQuickBindCard createCJQuickBindCard(CJQuickBindCard CJQuickBindCard);
	
	//鑫佳宇通道用户数据操作
	/*XJYApiRegister createXJYApiRegister(XJYApiRegister xjyApiRegister);
	
	XJYApiRegister getXJYApiRegister(String bankCard);*/
	
	HLRegister getHLRegisterByBankCardAndCardType(String bankCard, String cardType);
	
	HLRegister getHLRegisterByPhoneAndCardType(String phone, String cardType);
	
	WFRegister getWFRegisterByBankCard(String bankCard);
	
	WFRegister createWFRegister(WFRegister wfRegister);
	
	//jfm
	
	XJYCoinRegister getXJYCoinRegisterByPhoneAndBankCard(String phone, String bankCard);
	
	XJYCoinRegister getXJYCoinRegisterByBankCard(String bankCard);
	
	XJYCoinRegister createXJYCoinRegister(XJYCoinRegister xjyCoinRegister);
	
	XJYCoinBindCard getXJYCoinBindCardByBankCard(String bankCard);
	
	XJYCoinBindCard createXJYCoinBindCard(XJYCoinBindCard xjyCoinBindCard);
	
	
	BankInfoCode getBankInfoCodeByBankName(String bankName);
	
	BankNumCode getBankNumCodeByBankName(String bankName);
	
	JFQuickRegister getJFQuickRegisterByPhoneAndBankCard(String phone, String bankCard);
	
	JFQuickRegister getJFQuickRegisterByBankCard(String bankCard);
	
	JFQuickRegister getJFQuickRegisterByIdCard(String idCard);
	
	JFQuickRegister createJFQuickRegister(JFQuickRegister JFQuickRegister);
	
	JFQuickRegister getJFQuickRegisterByRateCode1(String phone, String rateCode1);
	
	JFQuickRegister getJFQuickRegisterByRateCode2(String phone, String rateCode2);
	
	JFshangaoBindCard getJFshangaoBindCard(String phone, String bankCard);

	JFshangaoBindCard createJFshangaoBindCard(JFshangaoBindCard JFshangaoBindCard);
	
	JFMQuickBindCard createJFMQuickBindCard(JFMQuickBindCard jfmQuickBindCard);
	
	JFMQuickBindCard getJFMQuickBindCard(long userid, String bankCard);

	//米联通道保存商户进件数据
	MiLianRegister createMiLianRegister(MiLianRegister miLianRegister);

	MiLianRegister getMiLianRegister(long userId);

	MiLianRegister getMiLianRegister(long userId, String bankCard);

	Integer deleteMiLianRegister(long userId, String bankCard);

	MiLianQuickRegister getMiLianQuickRegister(long userId);

	MiLianQuickRegister getMiLianQuickRegister(long userId, String bankCard);

	MiLianQuickRegister createMiLianQuickRegister(MiLianQuickRegister miLianQuickRegister);

	Integer deleteMiLianRegisterByUIdAndBankId(long userId, String bankCard);

	Integer updateMiLianRegisterStateByUIdAndBankId(long userId, String bankCard);

	MiLianQuickBindCard createMiLianQuickBindCard(MiLianQuickBindCard miLianQuickBindCard);

	MiLianQuickBindCard getMiLianQuickBindCardByUseridAndBankCard(String userId, String bankCard);

	Integer updateMiLianBindCardStateByIdAndBankId(String userId, String bankCard);
	
	// 通过银行名称获取对应的惠至银行代码
	String getHZQuickBankCodeByBankName(String bankName);
}
